package reflect;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author DBX
 * @effect
 * @date 2021/09/16/10:09
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRun {
    /*
    * 注解可以定义参数，格式如下：
    *   类型 参数名() [default 默认值]
    * 参数可以定义多个，使用注解是，语法格式：
    * @注解名(参数1=值1，参数2=值2...)
    * 如果注解中只有一个参数时，通常参数名选取value，此时使用注解时，传递参数语法可以忽略参数名，写成：
    * @注解名(参数值) 当然也可以写成：@注解名(参数名 = 参数值)
    *
    * 例如当前注解实际使用时可以写为：
    * @AutoRun(5)或@AutoRun(value = 5)
    * 如果AutoRun中参数只有一个，且名字不是value，比如为sum，那么使用时必须指定参数名：@AutoRun(sum=5)
    *
    * 参数可以指定默认值，使用关键之default，指定后，使用注解时可以不传入参数，该参数会采用默认值，如
    * @AutoRun 那么value的默认值就是1*/
    int value() default 1;
}
